package com.sq.partner.manager.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.sq.partner.manager.mybatis.model.ActirationCardMinMaxDto;
import com.sq.partner.manager.mybatis.model.ActirationCardReceiveDto;
import com.sq.partner.manager.mybatis.model.ActivationCardSheet;
import com.sq.partner.manager.mybatis.model.DeptDto;
import com.sq.partner.manager.util.Page;

public interface ActivationCardSheetDao extends BaseDao{
	/**
	 * 批量新增激活卡
	 * @param t
	 * @return
	 * @throws Exception
	 */
	public boolean insert(List<ActivationCardSheet> t) throws Exception;
	/**
	 * 删除机构卡（单条）
	 * @param t
	 * @return
	 * @throws Exception
	 */
	public boolean delete(ActivationCardSheet t) throws Exception;
	/**
	 * 修改激活卡（单条）
	 * @param t
	 * @return
	 * @throws Exception
	 */
	public boolean update(ActivationCardSheet t) throws Exception;
	/**
	 * 查询单条激活卡
	 * @param t
	 * @return
	 * @throws Exception
	 */
	public ActivationCardSheet query(ActivationCardSheet t) throws Exception;
	/**
	 * 分页查询激活卡信息
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public Page<ActivationCardSheet> queryPage(Page<ActivationCardSheet> page) throws Exception;
	/**
	 * 查询激活卡列表
	 * @param t
	 * @return
	 * @throws Exception
	 */
	public  List<ActivationCardSheet> queryList(Map<String, Object> map)  throws Exception;
	/**
	 * 根据条件查询最大激活卡号
	 * @return
	 */
	public String getMaxNo(ActivationCardSheet info) throws Exception;
	/**
	 * 根据条件获取可流转的所有激活卡号（带分页list）
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public Page<String> getLzNoPage(Page<String> page) throws Exception;
	/**
	 * 分页查询汇总信息
	 * @return
	 * @throws Exception
	 */
	public Page<ActirationCardMinMaxDto> getMinMaxPage(Page<ActirationCardMinMaxDto> page) throws Exception;
	/**
	 * 单条最大最小号数量信息
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public ActirationCardMinMaxDto getMinMax(Map<String, Object> map) throws Exception;
	/**
	 * 根据条件获取可流转的所有激活卡号（不带分页，查询所有）
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public List<String> getLzNoList(Map<String, Object> map) throws Exception;
	/**
	 * 可接收列表（分页）
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public Page<ActirationCardReceiveDto> getReceivePage(Page<ActirationCardReceiveDto> page) throws Exception;
	/**
	 * 查询可接收卡单号列表
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public Page<String>getReceiveNoList(Page<String> page) throws Exception;
	/**
	 * 查询下级机构
	 * @param userCom
	 * @return
	 * @throws Exception
	 */
	public List<DeptDto> getComDown(String userCom) throws Exception;
	/**
	 * 查询本级及下级机构
	 * @param userCom
	 * @return
	 * @throws Exception
	 */
	public List<DeptDto> getComAndDown(String userCom) throws Exception;
	/**
	 * 查询上一级机构
	 * @param userCom
	 * @return
	 * @throws Exception
	 */
	public List<DeptDto> getComUp(String userCom) throws Exception;
	/**
	 * 流转获取最大可用数量
	 * @param paramMap
	 * @return
	 * @throws Exception
	 */
	public Integer getMaxNum(HashMap<String, Object> paramMap) throws Exception;
	/**
	 * 接收获取最大可接收数量
	 * @param paramMap
	 * @return
	 * @throws Exception
	 */
	public Integer getjsMaxNum(HashMap<String, Object> paramMap) throws Exception;
	/**
	 * 延期一个
	 * @param onList
	 * @return
	 * @throws Exception
	 */
	public boolean delayOne(HashMap<String,Object> map) throws Exception;
	/**
	 * 起止号批量延期
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public boolean delayByStartAndEnd(HashMap<String,Object> map) throws Exception;
	/**
	 * 起止号批量延期 查询可操作数量
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public Integer queryDelayCount(HashMap<String,Object> map) throws Exception;
	/**
	 * 操作流转（按照条件数量批量操作）
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public boolean updateDoCircul(Map<String, Object> map)throws Exception;
	/**
	 * 操作接收（按照卡单号接收）
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public boolean updateDoReceive(HashMap<String, Object> map)throws Exception;
	/**
	 * 定时任务 更改状态为过期
	 * @param card
	 * @return
	 * @throws Exception
	 */
	public boolean updateStatusForTimerTask(HashMap<String,Object> map)throws Exception;
}
